<?php

namespace Inscripcion\Controller;

use Inscripcion\Controller\GenericController;
use Componentes\Controller\UtilsArrayController;

class InscripcionesController extends GenericController {

    public function __construct() {
        
    }

    public function getList($id = 1, $param1 = 1, $param2 = 1, $param3 = 1) {
        $id = $this->params()->fromRoute('id');
        $param1 = $this->params()->fromRoute('param1');
        // obtener el limite de registros desde la url
        switch ($id) {
            case (0):
                //validar acceso
                break;
            case (1):
                //Retorna las materias a cursar dado una cedula
                //http://localhost/UptaebBackEnd/public/inscripcion/Inscripciones/1/05247163
                $idDatoIngreso = $this->params()->fromRoute('param1');
                $output = $this->getPensumCursarService()->getPensumCursar($idDatoIngreso);

                break;
            case (2):
                //Retorna las secciones disponibles asociadas a un idPensum y un lapso
                //localhost/UptaebBackEnd/public/inscripcion/Inscripciones/2/162/201521
                $idPensum = $this->params()->fromRoute('param1');
                $lapso = $this->params()->fromRoute('param2');
                $output = $this->getPensumCursarService()->getSeccionesDisponiblesSegunPensumLapso($idPensum, $lapso);
                break;
            case (3):
                //Retorna las materias inscritas dado un idDatosAcademicos y un lapso
                //localhost/UptaebBackEnd/public/inscripcion/Inscripciones/3/346/201521
                $cedula = $this->params()->fromRoute('param1');
                $lapso = \Componentes\Controller\VariablesGlobales::$lapsoDeInscripcion;
                $output = $this->getMateriaService()->getMateriasInscritasSegunCedulaYLapso($cedula, $lapso);
                break;
            case (4):
                //Retorna las materias inscritas dado un idDatosAcademicos y un lapso
                //localhost/UptaebBackEnd/public/inscripcion/Inscripciones/3/346/201521
                $cedula = $this->params()->fromRoute('param1');
                $idOrganizacionSeccion = $this->params()->fromRoute('param2');
                $idControlInscripcion = $this->params()->fromRoute('param3');
                $lapso = \Componentes\Controller\VariablesGlobales::$lapsoDeInscripcion;
                $output = $this->getInscripcionService()->inscribir($cedula, $idOrganizacionSeccion, $lapso, $idControlInscripcion);
                break;
            case (5):
                /*
                 * Valida el tiempo de acceso al sistema por las fechas y si no esta bloqueado (condicion matricular)
                 * http://localhost/UptaebBackend/public/inscripcion/controlInscripcion/@metodo/@cedula
                 * Ej: http://localhost/UptaebBackend/public/inscripcion/controlInscripcion/1/07443224
                 * Rsp: {"success":true,"data":null,"total":0,"mensaje":"ENTRADA AL SISTEMA EXITOSA"}
                 */
                $idSemestre = $this->params()->fromRoute('param1');
                $idOrganizacionSeccion = $this->params()->fromRoute('param2');
                $output = $this->getInscripcionService()->eliminarInscripcion($idSemestre, $idOrganizacionSeccion);
                break;
            default:
            case (6):
                echo"paso";
                //Retorna las materias inscritas dado un idDatosAcademicos y un lapso
                //localhost/UptaebBackEnd/public/inscripcion/Inscripciones/3/346/201521
                $cedula = $this->params()->fromRoute('param1');
                $lapso = \Componentes\Controller\VariablesGlobales::$lapsoDeInscripcion;
                $idorganizacionseccionainscribir = $this->params()->fromRoute('param2');
                $output = $this->getPensumCursarService()->getValidarChoques($cedula, $lapso, $idorganizacionseccionainscribir);
                break;
            default:
                return $param1;
        }
        return $this->convertirArrayAJson($output);
    }

    public function delete($id) {
        $idSemestre = $this->params()->fromRoute('id'); 
        $success = $this->getInscripcionService()->eliminarInscripcion($idSemestre);
        return $success;
    }

    //put your code here
}
